// ignore_for_file: must_be_immutable

import 'package:flutter/material.dart';

void main() {
  runApp(const MaterialApp(
    // 不显示debug图标
    debugShowCheckedModeBanner: false,
    home: MyText(),
  ));
}

class MyText extends StatefulWidget {
  const MyText({super.key});

  @override
  State<MyText> createState() => _MyTextState();
}

class _MyTextState extends State<MyText> with SingleTickerProviderStateMixin {
  late TabController _tabController;
  // 生命周期函数，在组件被初始化时会被执行
  @override
  void initState() {
    super.initState();
    _tabController = TabController(length: 9, vsync: this);
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        // 左侧的图标
        leading: IconButton(
          icon: const Icon(Icons.menu),
          onPressed: () {
            print('左侧按钮被点了');
          },
        ),
        backgroundColor: Colors.blue,
        actions: [
          IconButton(
              onPressed: () {
                print('右侧被点了');
              },
              icon: const Icon(Icons.search, size: 22)),
          IconButton(
              onPressed: () {
                print('右侧被点了');
              },
              icon: const Icon(Icons.more_horiz, size: 22))
        ],
        bottom: TabBar(
          onTap: (v) {
            print(v);
          },
          controller: _tabController,
          // 是否可以左右滑动
          isScrollable: true,
          // 被选中的下划线的颜色
          indicatorColor: Colors.white,
          // 被选中的下划线的高度
          indicatorWeight: 2,
          // 每个菜单项的padding值
          indicatorPadding: const EdgeInsets.all(5),
          // 下划线的长度和label还是tab等长
          indicatorSize: TabBarIndicatorSize.tab,
          indicator: const BoxDecoration(
            color: Colors.purple,
          ),
          // 选中的文字颜色
          labelColor: Colors.yellow,
          unselectedLabelColor: Colors.white,
          // tab懒的对齐方式
          tabAlignment: TabAlignment.center,
          tabs: const [
            Tab(
              child: Text('关注'),
            ),
            Tab(
              child: Text('热门'),
            ),
            Tab(
              child: Text('视频'),
            ),
            Tab(
              child: Text('我的'),
            ),
            Tab(
              child: Text('你得'),
            ),
            Tab(
              child: Text('她的'),
            ),
            Tab(
              child: Text('谁的'),
            ),
            Tab(
              child: Text('它的'),
            ),
            Tab(
              child: Text('猫的'),
            )
          ],
        ),
        title: const Text('这是title'),
      ),
      body: TabBarView(controller: _tabController, children: const [
        Text('这是关注'),
        Text('这是热门'),
        Text('这是视频'),
        Text('这是我的'),
        Text('这是你得'),
        Text('这是她的'),
        Text('这是谁的'),
        Text('这是它的'),
        Text('这是谁的')
      ]),
    );
  }
}
